Standard Deviation (Desviación Estándar)
En conjunto con la instrucción FIFO puede calcular el desvío estándar de los datos acumulados. Los argumentos para la instrucción son los mismos que se usan en la instrucción FIFO.
FIFO y STDVT se usan por separado. Cada vez que se ejecuta FIFO un nuevo dato es añadido al registro (y eliminado el mas viejo). Una vez que se han acumulado los datos necesarios en el registro se ejecuta STDVT. El resultado queda en el acumulador.
También produce una rotación de acumuladores.
Esta instrucción está a partir de el CP121 ROM 2.55 y CP122 ROM 2.03
;Ejemplo de media y desvío estándar
;
; Bellplast 22/11/2013
;-------------------------------------------------------------------------------
LD Init ;Evento que ocurre solo una vez
jmpc Inicio
LD puls_c1seg ;Evento cada segundo
calc LeeADC
end
LeeADC LD Ent_Trans ;Lee valor actual del transmisor conectado a la entrada analógica de 12bit
SUB 800 ;Quito la cantidad de cuentas correspondientes a los 4mA
SCALE 10, 32 ;Convierte el rango del transmisor (16mA) a 0 - 100 con un decimal
;Resultado: 4mA -> 0.0, 20mA -> 100.0
FIFO Var0, Var9 ;Registro de desplazamiento con los últimas 10 muestras
INC ContaM ;Cuenta las mediciones
LD ContaM
EQ 10 ;ContaM (en el acumulador) llegó a 10?
calc Calcula
RET
Calcula FAVG Var0, Var9 ;Calcula el promedio del las muestras
ST Media ;y lo guarda en la variable Media
STDVT Var0, Var9 ;Calcula el desvío estándar del las muestras
ST DesvioST ;y lo guarda en la variable DesvioST
MOVE 0, ContaM ;Re inicia contador
RET
; Inicialización (se ejecuta una sola vez)
Inicio LD 0
FILL Var0, Var9 ;Inicializo (borrado) del registro de variables
MOVE 0, ContaM ;Inicia contador
END
El ejemplo se puede descargar de aquí.
FIFO
FILL
FAVG
Lista de instrucciones
Indice